details: AssemblyDetails;
peHeaders: PEHeadersNode;
references: ReferencesNode;
namespaces: NamespaceNode[];
unmanagedImports: UnmanagedImportsNode;
unmanagedResources: UnmanagedResourcesNode;
selectedNode = ko.observable<BaseNode>(null);
private _assembly: managed.Assembly) { this.details = new AssemblyDetails(this._assembly);
this.peHeaders = new PEHeadersNode(null, this._assembly.fileHeaders);
this.references = new ReferencesNode(null, this._assembly);
this.namespaces = Page.createNamespaceNodes(this._assembly);
this.unmanagedImports = new UnmanagedImportsNode(null);
this.unmanagedResources = new UnmanagedResourcesNode(null);
this.peHeaders.click = <any>(this.peHeaders.handleClick = () => { this.selectedNode(this.peHeaders);
for (var i = 0; i < this.namespaces.length; i++) { var ns = this.namespaces[i];
ns.childClick = (src, chnode) => { this.selectedNode(chnode);
attachFileInput(input: HTMLInputElement) { if (input.files && input.files.length) { this.open(input.files[0]);
static createNamespaceNodes(assembly: managed.Assembly) { var byNamespace: { [namespace: string]: { [name: string]: managed.Type; }; } = {}; assembly.types.forEach(t=> { var nsTypes = byNamespace[t.namespace] || (byNamespace[t.namespace] = {});